package com.集合;
/*Iterator:属于接口。迭代器，集合的专用遍历方式。
* */
import java.util.Collection;
import java.util.ArrayList;
import java.util.Iterator;

public class IteratorDemo {
    public static void main(String[] args) {
        Collection<String> c = new ArrayList<String>();

        c.add("hello");
        c.add("world");
        c.add("java");

        //Iterator<E> iterator():返回此集合中元素的迭代器，通过集合的iterator()方法实现
        Iterator<String> it = c.iterator(); //多态
        /*public Iterator<E> iterator() {
                return new Itr();
         }
         private class Itr implements Iterator<E> {
                ......
         }
         */

        //E next():返回迭代中的下一个元素
       /* System.out.println(it.next());
        System.out.println(it.next());
        System.out.println(it.next());
        System.out.println(it.next());//NoSuchElementException,表示没有那么多元素即被请求的元素不存在
*/

        //boolean hasNext():如果迭代具有更多元素，则返回true
        /*if(it.hasNext()){
            System.out.println(it.next());
        }
        if(it.hasNext()){
            System.out.println(it.next());
        }
        if(it.hasNext()){
            System.out.println(it.next());
        }
        if(it.hasNext()){
            System.out.println(it.next());//没有报错，所以在获取元素前要先进行判断
        }*/

        //用while循环进行判断改进
        while(it.hasNext()){
            System.out.println(it.next());
        }

    }
}

/*集合的使用步骤：
1.创建集合对象
2.添加元素
    2.1创建元素
    2.2添加元素到集合
    合并：添加元素到集合
3.遍历集合
    3.1通过集合对象来获取迭代器对象
    3.2通过迭代器对象的hasNext()方法判断是否存在元素
    3.3通过迭代器对象的next()方法获取下一个元素
* */
